[INFO] cloning repository https://github.com/yportne13/TyportHDL
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yportne13/TyportHDL" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2FTyportHDL", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2FTyportHDL'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d8544d3deb13c12f4318067e25a253e24220ea0e
[INFO] checking yportne13/TyportHDL against try#a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399 for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2FTyportHDL" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yportne13/TyportHDL
[INFO] finished tweaking git repo https://github.com/yportne13/TyportHDL
[INFO] tweaked toml for git repo https://github.com/yportne13/TyportHDL written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yportne13/TyportHDL on toolchain a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yportne13/TyportHDL already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cac7b92dd8b9c6bd57d09e46246de96193907c61788305ec4f9c1ce01f64273e
[INFO] running `Command { std: "docker" "start" "-a" "cac7b92dd8b9c6bd57d09e46246de96193907c61788305ec4f9c1ce01f64273e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cac7b92dd8b9c6bd57d09e46246de96193907c61788305ec4f9c1ce01f64273e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cac7b92dd8b9c6bd57d09e46246de96193907c61788305ec4f9c1ce01f64273e", kill_on_drop: false }`
[INFO] [stdout] cac7b92dd8b9c6bd57d09e46246de96193907c61788305ec4f9c1ce01f64273e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f78a72d5f9c97e97b0a8d69eb77b5c437624161f9281c6caed0a38d86478a165
[INFO] running `Command { std: "docker" "start" "-a" "f78a72d5f9c97e97b0a8d69eb77b5c437624161f9281c6caed0a38d86478a165", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking typort-parser v0.1.0 (/opt/rustwide/workdir/typort-parser)
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling serde_json v1.0.120
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking tinyvec v1.8.0
[INFO] [stderr]     Checking bytes v1.6.1
[INFO] [stderr]     Checking anstyle-parse v0.2.5
[INFO] [stderr]     Checking anstyle v1.0.8
[INFO] [stderr]     Checking colorchoice v1.0.2
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking anstyle-query v1.1.1
[INFO] [stderr]     Checking str_indices v0.4.4
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking clap_lex v0.7.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking anstream v0.6.15
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking ropey v1.6.1
[INFO] [stdout] warning: unused variable: `kw`
[INFO] [stdout]   --> typort-parser/src/expr.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Expr::Match { kw, expr, arms } => {
[INFO] [stdout]    |                           ^^ help: try ignoring the field: `kw: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrow`
[INFO] [stdout]    --> typort-parser/src/expr.rs:103:40
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Expr::UnnamedFunc { param, arrow, body } => {
[INFO] [stdout]     |                                        ^^^^^ help: try ignoring the field: `arrow: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking clap_builder v4.5.11
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stdout] warning: unused variable: `kw`
[INFO] [stdout]   --> typort-parser/src/expr.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Expr::Match { kw, expr, arms } => {
[INFO] [stdout]    |                           ^^ help: try ignoring the field: `kw: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrow`
[INFO] [stdout]    --> typort-parser/src/expr.rs:103:40
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Expr::UnnamedFunc { param, arrow, body } => {
[INFO] [stdout]     |                                        ^^^^^ help: try ignoring the field: `arrow: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]    Compiling syn v2.0.72
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking mio v1.0.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stdout] warning: fields `severity`, `range`, `path_id`, and `msg` are never read
[INFO] [stdout]    --> typort-parser/src/combinator.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 113 |     severity: Severity,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 114 |     range: (u32, u32),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 115 |     path_id: PathId,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 116 |     msg: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arrow` and `expr` are never read
[INFO] [stdout]    --> typort-parser/src/expr.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct MatchCase<T> {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 126 |     arrow: Span<()>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 127 |     expr: Expr<T>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchCase` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `at` is never read
[INFO] [stdout]    --> typort-parser/src/expr.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Binding {
[INFO] [stdout]     |     ------- field in this variant
[INFO] [stdout] 144 |         ident: Span<String>, // 绑定的变量名
[INFO] [stdout] 145 |         at: Span<()>,    // `@` 符号
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pattern` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking typort-tyck v0.1.0 (/opt/rustwide/workdir/typort-tyck)
[INFO] [stderr]     Checking typort-interpreter v0.1.0 (/opt/rustwide/workdir/typort-interpreter)
[INFO] [stdout] warning: unused imports: `Param`, `Paren`, `Square`, and `TypeParam`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout] 9  |     types::{Param, TypeExpr, TypeParam},
[INFO] [stdout]    |             ^^^^^            ^^^^^^^^^
[INFO] [stdout] 10 |     Brace, Fn, Paren, Span, Square, Stmt,
[INFO] [stdout]    |                ^^^^^        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> typort-tyck/src/lib.rs:336:28
[INFO] [stdout]     |
[INFO] [stdout] 336 |                     .ok_or({ name.error(format!("Variable not in scope: {}", name.data)) })
[INFO] [stdout]     |                            ^^                                                           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 336 -                     .ok_or({ name.error(format!("Variable not in scope: {}", name.data)) })
[INFO] [stdout] 336 +                     .ok_or(name.error(format!("Variable not in scope: {}", name.data)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Param`, `Paren`, `Square`, and `TypeParam`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout] 9  |     types::{Param, TypeExpr, TypeParam},
[INFO] [stdout]    |             ^^^^^            ^^^^^^^^^
[INFO] [stdout] 10 |     Brace, Fn, Paren, Span, Square, Stmt,
[INFO] [stdout]    |                ^^^^^        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> typort-tyck/src/lib.rs:336:28
[INFO] [stdout]     |
[INFO] [stdout] 336 |                     .ok_or({ name.error(format!("Variable not in scope: {}", name.data)) })
[INFO] [stdout]     |                            ^^                                                           ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 336 -                     .ok_or({ name.error(format!("Variable not in scope: {}", name.data)) })
[INFO] [stdout] 336 +                     .ok_or(name.error(format!("Variable not in scope: {}", name.data)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:15:22
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                      ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn<T>>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:15:22
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                      ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn<T>>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                                                ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn<T>>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                                                ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 15  | pub fn tyck(ast: Vec<Fn>, env: HashMap<String, Fn<T>>) -> Result<Vec<hir::Fn>, Error> {
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:21:21
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                     ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn<T>, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:21:21
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                     ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn<T>, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:21:46
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                                              ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn<T>>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:21:46
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                                              ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub fn tyck_fn(ast: Fn, env: HashMap<String, Fn<T>>) -> Result<hir::Fn, Error> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::expr::Expr`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:734:30
[INFO] [stdout]     |
[INFO] [stdout] 734 | fn to_unit<T>(e: Span<T>) -> Expr {
[INFO] [stdout]     |                              ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/expr.rs:7:10
[INFO] [stdout]     |
[INFO] [stdout] 7   | pub enum Expr<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 734 | fn to_unit<T>(e: Span<T>) -> Expr<T> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::expr::Expr`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:734:30
[INFO] [stdout]     |
[INFO] [stdout] 734 | fn to_unit<T>(e: Span<T>) -> Expr {
[INFO] [stdout]     |                              ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/expr.rs:7:10
[INFO] [stdout]     |
[INFO] [stdout] 7   | pub enum Expr<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 734 | fn to_unit<T>(e: Span<T>) -> Expr<T> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 |         fun: Fn,
[INFO] [stdout]     |              ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 125 |         fun: Fn<T>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::Stmt`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:214:15
[INFO] [stdout]     |
[INFO] [stdout] 214 |         stmt: Stmt,
[INFO] [stdout]     |               ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:92:10
[INFO] [stdout]     |
[INFO] [stdout] 92  | pub enum Stmt<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 214 |         stmt: Stmt<T>,
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `typort_parser::Fn`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 |         fun: Fn,
[INFO] [stdout]     |              ^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct Fn<T> {
[INFO] [stdout]     |            ^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 125 |         fun: Fn<T>,
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::Stmt`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:214:15
[INFO] [stdout]     |
[INFO] [stdout] 214 |         stmt: Stmt,
[INFO] [stdout]     |               ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/lib.rs:92:10
[INFO] [stdout]     |
[INFO] [stdout] 92  | pub enum Stmt<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 214 |         stmt: Stmt<T>,
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::expr::Expr`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |         expression: Expr,
[INFO] [stdout]     |                     ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/expr.rs:7:10
[INFO] [stdout]     |
[INFO] [stdout] 7   | pub enum Expr<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 271 |         expression: Expr<T>,
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `typort_parser::expr::Expr`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |         expression: Expr,
[INFO] [stdout]     |                     ^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]    --> /opt/rustwide/workdir/typort-parser/src/expr.rs:7:10
[INFO] [stdout]     |
[INFO] [stdout] 7   | pub enum Expr<T> {
[INFO] [stdout]     |          ^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 271 |         expression: Expr<T>,
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> typort-tyck/src/lib.rs:48:53
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         Maybe::Hole(span) => return Err(todo!()),
[INFO] [stdout]    |                                                     ^^^ ------- any code following this expression is unreachable
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> typort-tyck/src/lib.rs:71:34
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Maybe::Hole(span) => Err(todo!()),
[INFO] [stdout]    |                                  ^^^ ------- any code following this expression is unreachable
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> typort-tyck/src/lib.rs:48:53
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         Maybe::Hole(span) => return Err(todo!()),
[INFO] [stdout]    |                                                     ^^^ ------- any code following this expression is unreachable
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> typort-tyck/src/lib.rs:71:34
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Maybe::Hole(span) => Err(todo!()),
[INFO] [stdout]    |                                  ^^^ ------- any code following this expression is unreachable
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  unreachable call
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:48:37
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         Maybe::Hole(span) => return Err(todo!()),
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 Maybe::Hole(span) => todo!(),
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Maybe::Hole(span) => Err(todo!()),
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> typort-tyck/src/lib.rs:528:16
[INFO] [stdout]     |
[INFO] [stdout] 528 |             if let Constraint::CEquality(t1, t2) = constraint {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paren`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:647:30
[INFO] [stdout]     |
[INFO] [stdout] 647 |             hir::Expr::Paren(paren) => todo!(),
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_paren`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lhs`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:672:17
[INFO] [stdout]     |
[INFO] [stdout] 672 |                 lhs,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `lhs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endl`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |                 endl,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `endl: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dot`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |                 dot,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `dot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:675:17
[INFO] [stdout]     |
[INFO] [stdout] 675 |                 obj,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `obj: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:677:30
[INFO] [stdout]     |
[INFO] [stdout] 677 |             hir::Expr::Tuple(square) => todo!(),
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:48:37
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         Maybe::Hole(span) => return Err(todo!()),
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 Maybe::Hole(span) => todo!(),
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> typort-tyck/src/lib.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |             Maybe::Hole(span) => Err(todo!()),
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `typort-tyck` (lib) due to 8 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> typort-tyck/src/lib.rs:528:16
[INFO] [stdout]     |
[INFO] [stdout] 528 |             if let Constraint::CEquality(t1, t2) = constraint {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paren`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:647:30
[INFO] [stdout]     |
[INFO] [stdout] 647 |             hir::Expr::Paren(paren) => todo!(),
[INFO] [stdout]     |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_paren`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lhs`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:672:17
[INFO] [stdout]     |
[INFO] [stdout] 672 |                 lhs,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `lhs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endl`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |                 endl,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `endl: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dot`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |                 dot,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `dot: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:675:17
[INFO] [stdout]     |
[INFO] [stdout] 675 |                 obj,
[INFO] [stdout]     |                 ^^^ help: try ignoring the field: `obj: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square`
[INFO] [stdout]    --> typort-tyck/src/lib.rs:677:30
[INFO] [stdout]     |
[INFO] [stdout] 677 |             hir::Expr::Tuple(square) => todo!(),
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `typort-tyck` (lib test) due to 8 previous errors; 14 warnings emitted
[INFO] [stdout] warning: fields `severity`, `range`, `path_id`, and `msg` are never read
[INFO] [stdout]    --> typort-parser/src/combinator.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 113 |     severity: Severity,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 114 |     range: (u32, u32),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 115 |     path_id: PathId,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 116 |     msg: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arrow` and `expr` are never read
[INFO] [stdout]    --> typort-parser/src/expr.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct MatchCase<T> {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 126 |     arrow: Span<()>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 127 |     expr: Expr<T>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchCase` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `at` is never read
[INFO] [stdout]    --> typort-parser/src/expr.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     Binding {
[INFO] [stdout]     |     ------- field in this variant
[INFO] [stdout] 144 |         ident: Span<String>, // 绑定的变量名
[INFO] [stdout] 145 |         at: Span<()>,    // `@` 符号
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pattern` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "f78a72d5f9c97e97b0a8d69eb77b5c437624161f9281c6caed0a38d86478a165", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f78a72d5f9c97e97b0a8d69eb77b5c437624161f9281c6caed0a38d86478a165", kill_on_drop: false }`
[INFO] [stdout] f78a72d5f9c97e97b0a8d69eb77b5c437624161f9281c6caed0a38d86478a165
